Computers typically execute a series of tasks suitable for the intended application. A "task" is defined as a self-contained package of data and executable procedures which operate on that data, perform logical functions, and are comparable to "processes" in other known systems. In an operating system environment, the operating system provides housekeeping, or direct control of the processes or tasks within the software package. The process, or task, is typically made up of one or more subroutines.
Within a process, it is desired that the data be accessible to that process and cannot be accessed from the outside, i.e., by other processes. Processes can be used to implement "objects", "modules", or other higher-level data abstractions. Data abstraction is only one element of a good design and of portability, or flexibility, for reuse in changing applications. As is known, the other design and reuse objectives are structure, modularity, information hiding, and hierarchy.
Correspondingly, in radio applications, a need exists to reduce design time and increase design efficiency by utilizing a common software platform, capable of reuse, or portability, for all new radio products. To implement some of these design objectives, a tri-level microprocessor radio operating system, in one known system, provided a background executive to allow processing of time-insensitive tasks, a foreground routine to allow processing of real-time sensitive tasks, and a mid ground executive to allow processing of time-sensitive tasks. In a two-way radio having radio functions controlled via a microprocessor, some examples of time-insensitive tasks are tasks that respond to an operator input. Examples of real-time sensitive tasks are signal encoding and decoding, serial bus data reception, and tone generation. On the other hand, examples of time-sensitive tasks are bus command interpretation, channel scanning, audio routing, and synthesizer programming.
Instead of being based on time sensitivity implemented by interrupts, operating systems based on message passing for system communication were developed. A "message" is a buffer containing data which controls a process, or a task, and/or supplies it with information required to carry out its operation. Hence, messages are one way for two processes to exchange data, or communicate. Messages also provide the mechanism by which hardware transparency is achieved. A process located anywhere in the system may now send a message to any other process anywhere else in the system if it knows the process's name.
However, for better information-hiding in application programs, such as restricting the scope or range of messages, a protocol, or standard, is needed which goes beyond the facilities of the operation system to add more definition and functionality on the message-passing model. Accordingly, there exists a need to reduce design time and increase design efficiency by utilizing a common software platform for all new radio products.